package service

import (
	"MessageSendService/app/api/internal/db"
	"MessageSendService/app/common/models"
	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

var MessageTemplateService = messageTemplateService{}

// messageTemplateService 业务层
type messageTemplateService struct {
}

func (t messageTemplateService) db() *gorm.DB {
	return db.Db
}

// List 分页列表
func (t messageTemplateService) List(page, size int, v *models.MessageTemplate) gin.H {
	lists := make([]models.MessageTemplate, 0) // 结果
	t.db().Model(&models.MessageTemplate{}).Where(&v).Order("").Offset((page - 1) * size).Limit(size).Find(&lists)
	var total int64 // 统计
	t.db().Model(&v).Where(&v).Count(&total)
	h := gin.H{"list": lists, "total": total}
	return h
}

// BatchGet 根据主键id批量查询模版
func (t messageTemplateService) BatchGet(ids []int) (v []models.MessageTemplate, err error) {
	err = t.db().Debug().Where("id in (?)", ids).Find(&v).Error
	if err != nil {
		return v, err
	}
	return v, nil
}

// Update 修改记录
func (t messageTemplateService) Update(v models.MessageTemplate) error {
	err := t.db().Model(&v).Updates(v).Error
	if err != nil {
		return err
	}
	return nil
}

// Insert 插入记录
func (t messageTemplateService) Insert(v models.MessageTemplate) error {
	err := t.db().Save(&v).Error
	if err != nil {
		return err
	}
	return nil
}

// Delete 根据主键删除
func (t messageTemplateService) Delete(ids []int) error {
	err := t.db().Delete(models.MessageTemplate{}, ids).Error
	if err != nil {
		return err
	}
	return nil
}
